From 96c5b8f48168c4f7695d36f11899c45dfb0393ea Mon Sep 17 00:00:00 2001 From: Gleb Kozyrev Date: Fri, 30 Oct 2015 12:39:35 +0200 Subject: [PATCH] Add a test for #2076, preservation of line endings style --- tests/test_cargo_generate_lockfile.rs | 51 ++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/tests/test_cargo_generate_lockfile.rs b/tests/test_cargo_generate_lockfile.rs index 276791aa0..c8a9bb6a2 100644 --- a/tests/test_cargo_generate_lockfile.rs +++ b/tests/test_cargo_generate_lockfile.rs @@ -2,7 +2,7 @@ use std::fs::File; use std::io::prelude::*; use support::{project, execs}; -use hamcrest::assert_that; +use hamcrest::{assert_that, existing_file}; fn setup() {} @@ -122,3 +122,52 @@ foo = "bar" File::open(&lockfile).unwrap().read_to_string(&mut lock).unwrap(); assert!(lock.contains(metadata.trim()), "{}", lock); }); + +test!(preserve_line_endings_issue_2076 { + let p = project("foo") + .file("Cargo.toml", r#" + [package] + name = "foo" + authors = [] + version = "0.0.1" + "#) + .file("src/main.rs", "fn main() {}") + .file("bar/Cargo.toml", r#" + [package] + name = "bar" + authors = [] + version = "0.0.1" + "#) + .file("bar/src/lib.rs", ""); + + let lockfile = p.root().join("Cargo.lock"); + assert_that(p.cargo_process("generate-lockfile"), + execs().with_status(0)); + assert_that(&lockfile, + existing_file()); + assert_that(p.cargo("generate-lockfile"), + execs().with_status(0)); + + let mut lock0 = String::new(); + { + File::open(&lockfile).unwrap().read_to_string(&mut lock0).unwrap(); + } + + assert!(lock0.starts_with("[root]\n")); + + let lock1 = lock0.replace("\n", "\r\n"); + { + File::create(&lockfile).unwrap().write_all(lock1.as_bytes()).unwrap(); + } + + assert_that(p.cargo("generate-lockfile"), + execs().with_status(0)); + + let mut lock2 = String::new(); + { + File::open(&lockfile).unwrap().read_to_string(&mut lock2).unwrap(); + } + + assert!(lock2.starts_with("[root]\r\n")); + assert_eq!(lock1, lock2); +}); -- 2.30.2